﻿using Estsh.Core.Model.Extend.Models;
using Estsh.Core.Model.Result;
using Estsh.Core.Models;
using Estsh.Core.Services;
using Estsh.Core.Util;
using System.Collections;

namespace Estsh.Core.Wms.IServices
{
    public interface IMovementManageService : IBaseService<WmsMoveHeader_Extend>
    {
        public Hashtable getMoveHeaderListByPage(string orderNo, string orderType, string orderStatus, string startTime, string endTime, string enabled, int factoryId, Pager pager, String direction, String sort,string fedbatchType);
        public Hashtable getMoveDetailListByPage(string orderNo, string enabled, int factoryId);
        public Hashtable getMoveSnListByPage(string orderNo, string partNo, string enabled, int factoryId);
        public Hashtable onBarcodeGenerator(String ids);
        public List<KeyValueResult> GetErpwarehouse();
        public List<KeyValueResult> GetMoveOrderType();
        public List<KeyValueResult> GetFedbatchType();
        public List<KeyValueResult> GetFedbatchMethods();
        public List<KeyValueResult> GetMoveOrderStatus();
        public List<KeyValueResult> getSelectFactory();
        public List<KeyValueResult> getSelectWarehouse();
        public List<SysWarehouse> getSelectWarehouse(string warehouseid);
        public List<SysZone> getSelectZone(string zoneid);
        public List<KeyValueResult> getSelectZone();
        public List<KeyValueResult> getSelectVendor();
        public List<SysVendor> getSelectVendor(string vendorid);
        public List<KeyValueResult> GetPart();
        public List<SysPart> GetPart(string PartNo);
        public bool saveMovementManage(WmsMoveHeader_Extend htParams, IList<WmsMoveDetail_Extend> htDetailParams);
        public List<SysPart> GetPartNoInfo(string part_no);
        public List<SysPart> GetPartNoInfoByPartNo(string part_no);
        public List<SysPart> GetPartSpecInfo(string partSpec);
        public List<SysPart> GetPartSpecInfoByPartSpec(string partSpec);
        public bool onClose(String ids, String empId);
        public bool EnableData(String ids);
        public bool DisableData(String ids);
        public List<MesWorkOrder> GetWorkRefOrderNo(string refOrderNo, string orderType);
        public List<MesWorkOrder> GetWorkOrderInfo(string refOrderNo);
        public List<SysZone> getSelectZone2(string zoneid);

        public List<KeyValueResult> getSelectLocate(int zoneId);

        public List<SysLocate> getSelectLocate2(string locateid);
    }
}
